Subroutine allocation for robotic collaboration

ABSTRACT

A method of robotic collaboration comprises designating a first robot a lead robot and assigning a first task in a task area to the lead robot. Broadcasting a work query in the task area seeks the presence of subordinate robots configured to perform tasks. Receiving a work confirmation signal from a subordinate robot in the task area answers the work query with an affirmation that the subordinate robot is in the task area to perform tasks. Transmitting a task command to the subordinate robot in response to the work confirmation signal comprises a directive to perform the first task. Receiving a task confirmation signal informs the lead robot of the subordinate robot electronic characteristics comprising processing capabilities, transmit signal profile, receive signal profile, and storage device capabilities. Processing confirms whether the subordinate robot can collaborate with the lead robot to do the first task.

This is a continuation of application Ser. No. 15/599,248, filed May 18,2017 which claims the benefit of U.S. provisional patent application No.62/445,055 filed Jan. 11, 2017 all of which are incorporated herein byreference.

FIELD

This application relates to robotic control, robotic collaboration andinterfaces therefor.

BACKGROUND

Prior robot control techniques for teams of robots result in a “swarm”of robots with redundant programming and objectives. The robots resemblea swarm of bugs crawling over each other to perform their respectivetasks. It has been difficult to package a robotics system such that therobots are aware of each other and their relationship to their assignedtask.

SUMMARY

The methods disclosed herein overcome the above disadvantages andimproves the art by way of robotic interfaces for robotic control andcollaboration.

A method of robotic collaboration, comprising designating a first robota lead robot and assigning a first task in a task area to the leadrobot. Broadcasting, from the lead robot, a work query in the task areaseeks the presence of subordinate robots configured to perform tasks.Receiving, at the lead robot, a work confirmation signal from asubordinate robot in the task area answers the work query with anaffirmation that the subordinate robot is in the task area to performtasks. Transmitting, from the lead robot, a task command to thesubordinate robot in response to the work confirmation signal comprisesa directive to perform the first task. Receiving at the lead robot, fromthe subordinate robot, a task confirmation signal comprising first dataconfirming the subordinate robot physical characteristics and seconddata confirming the subordinate robot electronic characteristics informsthe lead robot of the subordinate robot electronic characteristicscomprising processing capabilities, transmit signal profile, receivesignal profile, and storage device capabilities. Processing the receivedfirst data and the received second data confirms whether the subordinaterobot can collaborate with the lead robot to do the first task. The leadrobot or the subordinate robot completes at least a portion of the firsttask.

Another method of robotic collaboration comprises designating a firstrobot a lead robot and assigning a first task in a task area to the leadrobot. Broadcasting, from the lead robot, a processing capabilitiesquery in the task area seeks processing capabilities of a subordinaterobot in the task area. Receiving, at the lead robot, a processingcapabilities confirmation signal from the subordinate robot in the taskarea informs the lead robot of subordinate robot processingcharacteristics. Broadcasting, from the lead robot, a work query to thesubordinate robot, and receiving, at the lead robot, a work confirmationsignal from the subordinate robot, answers the work query with anaffirmation that the subordinate robot is in the task area to performthe task. Transmitting, from the lead robot, a task command to thesubordinate robot in response to the work confirmation signal, comprisesa directive to perform the first task. Receiving at the lead robot, fromthe subordinate robot, a task confirmation signal comprises first dataconfirming the subordinate robot physical characteristics and seconddata confirming the subordinate robot electronic characteristics.Processing the received first data and the received second data confirmswhether the subordinate robot can collaborate with the lead robot to dothe first task. One or both of the lead robot and the subordinate robotcomplete at least a portion of the first task.

The methods can further comprise transmitting formatting algorithms fromthe lead robot to the subordinate robot in response to the processingcapabilities confirmation signal, the formatting algorithms configuredto format the processing capabilities of the subordinate robot tocomplete the first task.

Additional objects and advantages will be set forth in part in thedescription which follows, and in part will be obvious from thedescription, or may be learned by practice of the disclosure.

It is to be understood that both the foregoing general description andthe following detailed description are exemplary and explanatory onlyand are not restrictive of the claimed invention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic representation of human-on-the-loop oversight of asquad network.

FIG. 2 is a flow diagram of squad network capabilities.

FIG. 3 is an example of a squad network hierarchy.

FIGS. 4A-4B are alternative methods for completing a task.

FIG. 5 is a method for forming a squad network and squad networkhierarchy.

FIG. 6 is a method for optimizing robot use.

FIG. 7 is a method related to task completion algorithms.

DETAILED DESCRIPTION

Reference will now be made in detail to the examples which areillustrated in the accompanying drawings. Wherever possible, the samereference numbers will be used throughout the drawings to refer to thesame or like parts. Directional references such as “left” and “right”are for ease of reference to the figures.

Robotics collaboration permits a disciplined team of robots to functionin an organized, network-aware manner. Instead of “swarming” to reach anobjective, the robots are aware of other network members and adjusttheir actions based on the presence and attributes of other squadmembers. The robots are also self-aware, with capability to sense andrespond to their surroundings.

FIG. 1 is a schematic representation of human-on-the-loop (HOL)oversight of a task area 100. A HOL assembly 20 can comprise mechanismsfor permitting a human to input required scripts for designating a leadrobot in step 400 and assigning a task in step 401. Additional scripts,such as those needed for weighting physical characteristics andelectronic characteristics in step 507, optimizing robot use in step519, adjusting task commands 521, and generating new task completionalgorithms, among others, can be input via input devices at HOL assembly20. For example, keyboard, mouse, synaptic devices, USB or other dataports, among others, permit insertion of scripts to modify the robotsand control algorithms comprising the squad network.

Viewing, processing, and storage devices are also included in the HOLassembly. For example, monitors, printers, hand-held devices, amongothers can be associated with one or more processing devices and storagedevices. Computer-readable media, such as RAM, ROM, USB among others cancomprise storage devices for necessary algorithms, including scripts.The processor of the HOL assembly 20 can access the computer readablemedia to execute the stored algorithms. One or more libraries 10 ofalgorithms can be accessed via cloud-computing, virtual private network(VPN), private network, or other hardwired or internet capabilities.

A task area 100 is viewable at the HOL assembly 20 for oversight. Therobots are subject to a leadership hierarchy resulting in a squad-basedrobot hierarchy. At least one robot is a center “hub” for missiondirectives, network mapping, and subroutine allocation. The lead robot,or squad leader robot SQL, can have enhanced hardware, such as morememory device capacity, stronger networking signal strength capacity,and faster processing speed, while lower hierarchy robots have reducedcapacities. The hierarchy structure permits lighter, less complex squadmembers that can act faster than more complicated prior art swarms viathe reduced processing load to individuals in the network. Individualrobots, or squad members, are “spokes,” receiving distributed commands,subroutine updates, task provisioning, etc. from the squad leader robotSQL.

A squad leader can push the commands, updates, and provisioning, cantrack squad network progress, and can update the pushed commands, pushedupdates, and provisioning based on the progress. Meanwhile, the squadmembers can receive the various pushed data. While aggregation of pusheddata is permissible, it is possible for the squad members to replace aprior iteration of commands, subroutines, and provisioning with theupdated push. The “flushing” of old data and replacement with new datasimplifies the squad member operation resulting in faster response timesand less complex hardware for the squad members.

In FIG. 1, the squad leader robot SQL comprises physical characteristicsand electronic characteristics. A main body 101 contains processingcapabilities, such as a processor, memory device, and storedprocessor-executable algorithms. In this example, the squad leader robotSQL comprises caterpillar treads 1031 as one of its physicalcharacteristics associated with main body 101. A transmit and receivedevice 105, such as a two-way radio antenna, is affixed to main body 101and can transmit and receive signals related to HOL assembly 20 andrelated to the other robots in the task area 100.

Other robots in the task area 100 also comprise their own physicalcharacteristics and electronic characteristics. For example, robot A1can comprise a transmit and receive device 2051, and its processingcapabilities can be contained in a main body 2011 that also comprisescaster wheels 2031 for physical characteristics. Robot B1 can comprise atransmit and receive device 3051, and its main body 3011 can compriseprocessing capabilities and physical characteristics 3031 comprising atoaster function. Robot A2 can comprise transmit and receive device2052, and its main body 2012 can comprise processing capabilities.Physical characteristics of robot A2 can comprise caterpillar treads2032 and a forklift 2033.

Squad leader robot SQL can communicate bi-directionally with HOLassembly 20 and each of robots A1, A2, & B1. As indicated by thedouble-headed arrows to task area 100, bidirectional communication ispossible between HOL assembly 20 and all robots (SQL, A1, A2, B1) in thetask area. It is preferable to limit chatter by restrictingbi-directional communication to squad leader robot SQL and HOL assembly20. In some instances, it is advantageous for HOL assembly 20 tocommunicate bi-directionally with the other robots (A1, A2, B1). In anycase, communications can be transmitted across a meshed network. In thealternative, the communications can be point to point, or point tomultipoint.

A method of robotic collaboration is outlined in FIG. 4A and comprisesdesignating a first robot a lead robot in step 400. This can be done bya human via HOL assembly 20, or algorithms discussed more below can beimplemented onboard a current squad leader robot SQL or can beimplemented at the HOL assembly 20 for result in lead robot designation.FIG. 4 illustrates the designation emanating from HOL assembly 20. HOLassembly 20 also assigns a task in step 401, either via automationprogramming or via human selection. The task is assigned in a task area100 to the lead robot, who is also known as the squad leader robot SQL.The method progresses with broadcasting, from the lead robot, a workquery in the task area in step 403. This seeks the presence ofsubordinate robots configured to perform tasks. In the example, robot A1receives the broadcast and, in step 422, robot A1 transmits a workconfirmation signal. The lead robot receives the work confirmationsignal from the subordinate robot in the task area in step 405. Thisanswers the work query with an affirmation that a subordinate robot isin the task area to perform tasks.

The lead robot then transmits a task command to the subordinate robot inresponse to the work confirmation signal in step 407. The task commandcan comprise a directive to perform the first assigned task. By nottransmitting the task command until after the work confirmation signalis received, the lead robot does not waste resources broadcasting taskcommands. This reserves energy, reduces chatter, and speeds overallsystem processing. The uncluttered broadcasts also make it easier towork with robots of lower processing capabilities, thus expanding theapplicability and backwards-compatibility of the disclosed techniques.

The subordinate robot receives the task command in step 426 andimplements processing to transmit a task confirmation signal in step428. The task confirmation signal comprises first data confirming thesubordinate robot physical characteristics and second data confirmingthe subordinate robot electronic characteristics. In consideration ofrobot A1, the example robot, this means that physical characteristics2031 are part of the task confirmation signal, and so are processingcapabilities 2011.

Next, the lead robot receives, from the subordinate robot, the taskconfirmation signal 408. This informs the lead robot at least of thesubordinate robot electronic characteristics comprising processingcapabilities, transmit signal profile, receive signal profile, andstorage device capabilities. The lead robot processes the received firstdata and the received second data in step 409. This processing can beused to confirm whether the subordinate robot can collaborate with thelead robot to do the first task. The lead robot can work on the task instep 411 to complete at least a portion of the first task. Or,commensurate with other embodiments, the lead robot can move on to othertasks while the subordinate robot completes the task. Or, the lead robotand subordinate robot can work on the task together.

Once the subordinate robot assembles and transmits the task confirmationsignal in step 428, the subordinate robot can further process the taskcommand in step 430. Step 430 can comprise aspects of FIGS. 4B, 6 & 7.Ultimately, a decision is made whether or not to work on the task indecision block 432.

FIG. 2 shows one example where the squad leader robot SQL processingcapacity 101 is at full strength for processing speed X, signal strengthY, and memory capacity Z. The squad members in the next layer in thehierarchy, layer A, comprises Robots A1, A2, . . . . One or more layer Arobots can have equal capacity to the squad leader robot SQL while othersquad member robots can have a fraction of the processing capacity, asshown. When layer A robots comprise fractional capacity, the processingspeed X can be fractionally reduced by 1/P_(A), signal strength Y can befractionally reduced by 1/S_(A), and memory capacity Z can befractionally reduced by 1/M_(A). Should the squad leader be disabled, alayer A robot with equal processing capacity can be appointed the squadleader, or, the next-best layer A robot can be selected. Or, a subset oraggregate of layer A robots can be used to regenerate squad leader robotSQL processing capacity. Allocation programming permits robots A1, A2, .. . to combine capabilities to meet squad leader robot SQP processingcapacity, for example, 1/P_(A)+1/P_(A)=X, 1/S_(A)+1/S_(A)=Y,1/M_(A)+1/M_(A)=Z. In another alternative, the squad leader can allocateprocessing or other functionality to Layer A robots to offload work andfree up squad leader processing capacity 101. The allocation augmentsthe squad leader robots SQL's network awareness capacity.

Similarly for Layer B, the next layer in the hierarchy, robots B1, B2, .. . one or more layer B robots can have equal capacity to the squadleader robot SQL while other robots can have reduced capacity as shown.The processing speed X can be fractionally reduced by 1/P_(B), signalstrength Y can be fractionally reduced by 1/S_(B), and memory capacity Zcan be fractionally reduced by 1/M_(B). Should the squad leader robotSQL and or Layer A robots A1, A2, . . . be disabled, a layer B robotwith equal capacity can be appointed the squad leader robot SQL, or, asubset or aggregate of layer B robots can be used to regenerate squadleader robot SQL processing capacity. Allocation programming permitsrobots B1, B2, . . . to combine capabilities to meet squad leader robotSQL processing capacity, for example, 1/P_(B)+1/P_(B)=X,1/S_(B)+1/S_(B)=Y, 1/M_(B)+1/M_(B)=Z. In an alternative, allocationprogramming permits robots B1, B2, . . . to combine capabilities to meetLayer A robot capacities, for example, 1/P_(B)+1/P_(B)=1/P_(A)X,1/S_(B)+1/S_(B)=1/S_(A)Y, 1/M_(B)+1/M_(B)=1/M_(A)Z. In anotheralternative, the squad leader can allocate processing or otherfunctionality to Layer B robots to offload work and free up squad leaderrobot SQL processing capacity. The allocation augments the squad leaderrobot SQL's network awareness capacity.

It is not necessary that all robots in a squad network be homogeneouswith respect to physical or processing capabilities. It is possible toassemble heterogeneous devices in to a squad network. Each of the leadrobot, the first subordinate robot A1, a second subordinate robot A2,etc. can be heterogeneous with respect to electronic characteristics.But, the lead robot is configured to interface among the heterogeneouselectronic characteristics. A method can be implemented so that the leadrobot issues heterogeneous task completion algorithms to the firstsubordinate robot A1 and to the second subordinate robot A2, and theheterogeneous task completion algorithms are respectively tailored tothe electronic characteristics of the first subordinate robot A1 and ofthe second subordinate robot A2. For example, the first subordinaterobot A1 can be of such limited memory capacity Z that the firstsubordinate robot requires streaming of task commands. However, secondsubordinate robot A2 can comprise a high memory capacity Z that permitsdownloading and storage of task commands. Or, transmission rates of taskcommands can be tailored to the processing speeds, or the signalstrength of the transmissions can be tailored to the antenna typesinvolved, and the like.

Likewise, each of the lead robot, the subordinate robot, and the secondsubordinate robot can be heterogeneous with respect to physicalcharacteristics. The lead robot can be configured to interface among theheterogeneous physical characteristics. Then, the lead robot can issueheterogeneous task completion algorithms to the first subordinate robotA1 and to the second subordinate robot A2. The heterogeneous taskcompletion algorithms are respectively tailored to the physicalcharacteristics of the first subordinate robot A1 and of the secondsubordinate robot A2. For example, robot A1 can move on a differentturning radius than robot A2, and so first subordinate robot A1 canreceive different instructions for pivoting than second subordinaterobot A2.

It is possible that the first task commands and the second task commandsare heterogeneous so that a step of subdividing the task command in tofirst task commands and second task commands to allocate roboticcollaboration based on the determined relative task completioncapabilities comprises minimizing redundancies between the subordinaterobot and the second subordinate robot. This is especially useful toavoid a “swarm” or robots one over the other.

Also shown in FIG. 2 is an alternative connection to HOL assembly 20.Hardware for HOL assembly comprises a laptop or notebook computerconnected to a server 40. The server 40 connects to a library 10 ofalgorithms. An internet cloud 30 transfers data between servers 40 & 43.Transmit and receive devices 105, 2051, 2052, 3051, 3052 can benetworked to communicate directly or indirectly with server 43, such asby WI-FI or other routing capabilities.

Leadership is adaptive based on situational programming, for example,leadership can be reallocated to another squad member based on whetherthe lead robot, for example, malfunctions or otherwise lacks leadershipcapability. Should a squad leader robot SQL be removed from the squadnetwork, allocation processing among the squad members A1, A2, B1, B2, .. . can permit the lesser processing capacity of the squad members to beaggregated to meet the minimum processing requirements that a squadleader robot SQL should have.

The hierarchy can be organized by processing capabilities, physicalcapabilities, or some combination of both, and the importance of thosecapabilities can shift between tasks. For example, a task for quicktoasting of bread could prioritize collaboration between robot A2 androbot B2, so that the forklift 2033 of robot A2 can quickly put bread intoaster function 3031. Squad leader robot SQL can be selected for directcommunication with HOL assembly 20 due to its superior processingcapabilities. But, an intense navigation sequence could requirespecialized processing capabilities and more physical maneuverability.Robot A1 can be prioritized to use caster wheels 2031 for difficultmaneuvers and can replace squad leader robot SQL in the hierarchybecause on-board processing in body 2011 is superior for simultaneousmaneuverability processing and direct communication of themaneuverability processing with HOL assembly 20.

A calibration process can be implemented to determine the squad leaderrobot SQL. For example, a computationally intense task, such asnavigating rough terrain can have a squad leader robot SQL with acombination of enhanced computational capabilities and appropriatenavigational capabilities, such as continuous track propulsion(caterpillar treads 1031). The calibration process can include a test,such as a calculation of processing speed, to rank the robots bycomputational capabilities. Other factors, such as RAM, ROM, appendages,transmission and reception speeds, sensor capabilities, etc. can beranked, also. Based on the importance of the factors, the squad leaderrobot SQL is selected to combine the computation capabilities factorswith the other factors to result in the best squad leader robot SQL forthe task. The calibration process can be implemented at a deviceassociated with HOL assembly 20 or directly within the currentlydesignated squad leader robot SQL. The remaining robots are likewisesorted in to teams, which can be layered, as needed. A task can becompleted with all or fewer than all available squad members.

Layer A robots can be tasked with sensing terrain information andreporting terrain data back to squad leader. Layer B robots can betasked with related support efforts, such as processing subroutines andreporting results back to squad leader robot SQL. Squad leader robot SQLupdates and pushes mission directives, network mapping, and subroutineallocation based on the received sensed terrain data and the reportedresults. The hierarchy can be redistributed for a different task, suchas a lift task, where armatures and hydraulics become a more importantattribute. A robot of minimum processing capability becomes squad leaderrobot SQL, while teams and layer A and layer B robots are organized bythe factors impacting their capability to support the lifting task. FIG.3 illustrates an example of this layering. A perfect robot would be inthe center of the circles, and in this example, they are rankedrelatively and in relation to one another. Bi-directional arrowsindicates the ability for the robots to shift within the hierarchy toother locations of different rank. So, processing the received firstdata can comprise determining that the subordinate robot is notphysically capable of performing the first task. The methods herein canfurther comprise one of reassigning the first task to the lead robot andbroadcasting a task support signal seeking task support from a secondsubordinate robot.

FIG. 4B illustrates a method conducive to the hierarchy establishmentprocess. Here, robotic collaboration comprises the same steps ofdesignating a first robot a lead robot in step 400 and assigning a firsttask in a task area to the lead robot in step 401. However, in step 413,the lead robot broadcasts a processing capabilities query in the taskarea to seek processing capabilities of a subordinate robot in the taskarea 100. The subordinate robot, robot A2 for purposes of this example,receives the broadcast processing capabilities query and in response,assembles and transmits a processing capability confirmation signal instep 436. Assembling by the subordinate robots can comprise a robotactively scanning its capabilities, or can comprise mere processing ofpreprogrammed signal content. Active scanning can be necessary becauseof the ability for HOL assembly 20 or squad leader robot SQL to push newalgorithms and allocations down to robot A2. Or, robot A2 can havecapabilities to reallocate or utilize processing capabilities on itsown. So, real-time assessment of processing capabilities is preferred.

The lead robot receives and processes the processing capabilitiesconfirmation signal from the subordinate robot in the task area in step415. This informs the lead robot of subordinate robot processingcharacteristics.

An optional step 417 can comprise transmitting formatting algorithmsfrom the lead robot to the subordinate robot. These algorithms can bereceived by the subordinate robot, and the subordinate robot can obtainreformatted processing capabilities in step 438. The algorithms fromsquad leader robot SQL can be formulated and issued directly from squadleader robot SQL, or HOL assembly 20 can push such algorithms to squadleader robot SQL or to subordinate robot A2. A forced reformatting canoccur, or subordinate robot A2 can perform a run functionality on thereceived reformatting algorithms. Transmitting the formatting algorithmsfrom the lead robot to the subordinate robot in response to theprocessing capabilities confirmation signal can comprise the formattingalgorithms configured to format the processing capabilities of thesubordinate robot to complete the first task.

With the subordinate robot A2 reformatted to complete all or someportion of the assigned task, the lead robot broadcasts a work query tothe subordinate robot in step 403. The remaining steps progress as abovein the method of FIG. 4A. In FIGS. 4A & 4B, the transmissions are shownto cross over HOL assembly 20, because the processing and communicationsof the squad leader robot SQL and subordinate robot A2 are monitored bya human on the loop.

The reformatting process can be based, at least in part, on acalibration process. In order to implement the calibration process, itis ideal to have a universal decoder device on each robot. It is alsoideal to have an on-board wireless server architecture. In the absenceof a shared programming language or shared transmission frequency, theuniversal decoder device can be implanted on a robot. The device wouldscan the robot for the extent of its capabilities for ranking in thenetwork. The results of the scan would revert back to squad leader for adetermination of which subroutines to push. As an example, the universaldecoder could comprise at least a transceiver to communicate with squadleader, a processor and a stored scan routine. The universal decodercould transmit commands to the robot either by linking with the remotecontrol capabilities of the robot (eg.: WIFI, 802.11, radio frequency)or directly via hardwire. The commands cause the robot to act, such asby activating hydraulics, performing a computation, etc. When hardwired,the universal decoder senses the robot response directly. It is alsopossible to have an optical scanner or motion sensor observe robotactions and report calibration information back over the network forfurther processing. Such observations can also be used to customizesubroutine scripts, such as by informing squad leader of how to direct arobot to turn, lift, compute, etc. As the robot's various channels andlines are scanned, the related observation informs squad leader robotSQL of the channels and lines used to facilitate the task. Ultimately,squad leader robot SQL can customize instructions given to eachsubordinate robot so that each subordinate robot can have a uniquesubroutine that optimizes their contribution to the team. Commands canissue directly to the subordinate robots in the squad network or throughremote control devices affiliated with the robots. In this way, robotsof different manufacture or with different appendages can be allocatedoptimal subroutines to perform a lifting task. Despite disparateappendages, their team effort completes a task. The universal decoderdevice can include port, address, or signal assignments todifferentiate, or “name,” the robots A1, A2, B1, B2, . . . and thuspermit tailored communications to each robot.

FIG. 5 outlines a method for processing collected task area data tooptimize robot use. The method is usable to form a squad network andsquad network hierarchy. In step 501, task area data is collected. Thetask area data can comprise many alternative aspects, such as terrainroughness, temperature, grade, wetness, obstacles, or other taskimpediments or task variables. Wireless signal strength for maintainingcontact with HOL assembly 20 can also be assessed. Squad network membersand locations thereof can be assessed. These examples are non-limitingin that additional task area data can be collected and processedcompatibly with the principles of the invention disclosed herein.

In step 503, predictive mapping is applied to the task area data 503.Predictive mapping can comprise several aspects, but is useful so thatassigning a first task in a task area to the lead robot comprisespre-processing task area data and predictive-mapping a sequence ofsubroutines necessary to complete the first task. Also, the method cancomprise collecting and processing additional task area data anditeratively adjusting the sequence of subroutines necessary to completethe first task as the lead robot completes at least a portion of thefirst task.

To maintain physical task cohesion, robots can be reassigned based onlevel of responsiveness or appendage capability. Actions and subroutinescan be reassigned as needed to keep task cohesion. In this regard,communication redundancy and reliability is managed across the network.Communication is a result of the task, not just the result of a taskinput. That is, the system has more robust capability than a mere pushof information from squad leader robot SQL to the squad members in thenetwork. This facet is augmented by cross-communication among the squadmembers. A lack of responsiveness or a lack of communication from asquad member robot or squad leader robot SQL results in reallocation ofthe squad members.

The adaptive nature of the squad network surpasses the capability of aclone network, as the squad network can comprise a heterogeneous networkof disparate robots. While clones are permitted, disparate robots can beincorporated.

Subroutines stored among the network permit robots to observe eachother. The robots can spontaneously, or with squad leader permission,assist another robot. Robots can also be programmed via subroutine toautomatically adjust their activities based on their observations ofother robots. Reporting back and responding to updated commands can alsobe implemented among the squad.

When orchestrating tasks, it is possible for the squad leader to holdall subroutines and distribute them to followers to sequence completionof a task. Alternatively, subroutines can be pushed among the network inadvance, with control commands to sequentially activate subroutinesbased on network observations. In the distribution scheme, squad memberscan have reduced ROM and or RAM capabilities because squad leader robotSQL banks subroutines for push on an as-needed basis. When a task iscompleted, data can be collected for learning, updating, processimprovement, etc., and then the squad can “unlearn” the task to makeroom in the ROM or RAM for a next task. Using this schema, pushes ofsubroutines are not mere upgrades of onboard data, but new taskcommands. By holding back distribution or activation of subroutinesuntil implementation is needed, the squad network experiences fasterreaction time and greater responsiveness because the squad network isnot busy processing noncritical subroutines. Hold-back also permits thesquad leader robot SQL to adjust the squad network in real time, as byreassigning tasks, moving robots between layers A and B, augmenting ateam with a new robot, etc. As circumstances change, the squad canchange, but the squad network's exposure to “too much information” islimited, which streamlines processing and leaves less programmingsubject to security breach, corruption, etc.

To further enhance squad leader robot SQL capability, it is possible toenable run-time composability of machine instructions. That is, squadleader robot SQL updates subroutine instructions based on collecteddata. This differs from prior systems that use mere lookup or if-thencoding to pull pre-written code or to push down programming. Squadleader robot SQL can write new script or adjust existing script forunique circumstances. A task with given priorities has linked processesand attributes. As data collects to adjust the attributes, the processesadjust to complete the task. Squad leader robot SQL distributes thescripts in response to the network conditions.

These concepts are part of FIGS. 5-7. As above, the squad members reportgathered intelligence, which can be part of collecting task area data instep 501. Eventually, the collected task area data results in optimizingrobot use, which can be further broken down by the alternative stepslaid out in FIG. 6. The squad members are capable of fused operationalprocessing. The squad leader robot SQL collects the intelligence andprocesses it. In step 601, it is possible for squad leader robot SQL tocompare physical characteristics and electronic characteristics to thetask commands necessary to complete a task. The task commands can bebased, as least in part, on the collected task area data. It may benecessary to adjust task commands due to physical constraints in step603. Or, to subdivide task commands due to electronic characteristics instep 605. Or, to translate task commands to alternative processinglanguages in step 607. Steps 603, 605, 607 can be used together inparallel, or separately, as needed.

As one example for applying step 603, the above reallocation outlinedabove whereby robot A2 is replaced by robot A1 based on maneuveringdifficulty. The caterpillar treads 2032 of robot A2 constrain itsmaneuverability, while the caster wheels 2031 of robot A1 haveadvantageous maneuverability.

For an example of applying step 605, a subordinate robot A1 candetermine that it takes 75% power to complete a task. This electroniccharacteristic of robot A1 indicates that it is beneficial to restrictthe task given to robot A1 to conserve power. Distributing the task canpreserve the power of robot A1. But, fused processing permits squadleader robot SQL to redistribute the task commands to other squadmembers, but likewise to prevent 75% power depletion in the other squadmembers. So, the squad leader robot SQL can distribute subroutines ofdivided task commands set to 75% power to restrict processing efforts byother squad members. This reduces the time the squad network spendsprocessing and fuses the relative processing efforts of the squadmembers. Dynamically programming the subroutines and fusing real-timedata yields the fused operational processing of squad leader robot SQL.

Because of the calibration scheme above, further dynamic processingpermits squad leader robot SQL to translate the exemplary 75% powereffort according to each subordinate robot's capabilities. For example,making toast with robot A2, a robot with a greater lift capacity thanthe others, this robot would expend less power that the robot thatdetected a 75% power effort. So, the subroutine for the stronger robotwould adjust so that the stronger robot expends the equivalent of 75% ofthe detecting robot power.

As an example of step 607, robot A1 can comprise a different processinglanguage than robot A2. So, if robot A1 were to replace robot A2 on thetask, the task commands for robot A2 would need to be translated torobot A1's processing language.

Turning now to FIG. 7, as squad members detect information and report itback, the discovered data can be used to update a library ofsubroutines. The library can be stored in the cloud instead of on squadleader robot SQL to simplify the contents of the squad leader robot. Alookup routine can access the library from the cloud, and squad leaderrobot SQL could push, or adjust and push, the subroutine as needed forthe circumstances.

So, squad leader robot SQL could receive a task assignment in step 701and check library 10 in step 703. If available, a task completionalgorithm can be downloaded in response to decision block 705, but ifone is not available, it cannot be downloaded. Squad leader robot stillhas the task commands and transmits them, with or without downloadedtask completion algorithms, in step 707. Squad leader robot SQL can thenclear its cache in its memory device with respect to those task commandsin step 709, because the task commands are issued to subordinate robotA1. This frees up squad leader robot A1 for other tasks. Alternatively,the task commands can remain in the memory device cache until aconfirmation signal is received from robot A1.

Because of the limited on-board capabilities of the squad members andsquad leader robots, it is possible to implement a decision tree forwhether to report information back to the squad leader robot SQL or toHOL assembly 20, or whether to implement processing to independentlyadjust subroutines. For example, a squad member can follow a decisiontree for whether to perform a calculation or whether to ping squadleader robot SQL to push a result back. In another example, squad leaderrobot SQL could follow a decision tree whether to write new script,whether to modify existing scripts, or whether to ping HOL assembly 20to pull down a script from a library 10. A decision tree is one exampleof real time robot determination of processor allocation.

FIG. 7 illustrates one such decision tree. Once subordinate robot A1receives the task command from squad leader robot SQL in step 731, thesubordinate robot decides whether to generate new task completionalgorithms to complete the commanded task in decision block 733 orwhether to receive downloaded task completion algorithms in decisionblock 743. If the subordinate robot receives task completion algorithmsto accomplish the commanded tasks, then the robot A1 can work on thetask in step 739. Even with received downloaded task completionalgorithms, subordinate robot A1 could determine a more efficientprocess can be implemented based on an analysis, such a feedforwardprocessing subroutine, or based on an aspect of collected task areadata. And, if no downloaded algorithms are present, then subordinaterobot can generate new task completion algorithms from scratch.

For example, the terrain may comprise collected task area dataindicating that a grade is present. It could consume less power to go upthe grade backwards than to go up forwards, so, based on the collectedtask area data, the subordinate robot A1 can generate an algorithm tomodify the received downloaded task completion algorithm to require thatrobot A1 go up the grade backwards. Or, newly generated algorithms canbe so created to result in subordinate robot working on the commandedtask in step 739.

Having worked out a more efficient way to traverse the terrain in thetask area 100, the modified or newly generated task completion algorithmcan be transmitted to a library 10 for use by the robot comprisingphysical characteristics the same or similar to robot A1. With the taskcompletion algorithm stored, robot A1 can clear its cache of thealgorithm after working on the commanded task.

This can be accomplished, for example, by determining that thesubordinate robot comprises sufficient processing capabilities tocompose task completion algorithms. The subordinate robot can thencompose task completion algorithms and transmit the composed taskcompletion algorithms from the subordinate robot to the lead robot. Thelead robot can forward the task completion algorithms to a remotelibrary source. Then, the composed task completion algorithms can bedeleted from the subordinate robot and from the lead robot.

Human-on-the-Loop (HOL) systems are desired for permitting activitiessuch as squad oversight, real-time adjustment to tasks and priorities,manual overrides, real-time review of collected data, etc. Thus, theabove tasks performed by squad leader robot SQL can be augmented byhuman intervention. Returning to FIGS. 1 & 2, wireless connectivity to aserver 40, 43, cloud 30, and HOL assembly 20 computing capabilitypermits human intervention and oversity. Server can 40 connect the cloud30 to the computing capability and to libraries 10 of stored algorithms,including scripts and subroutines. It is to be understood that more orless connectivity can be implemented, for example, using router, tower,telco closet, transceivers, etc.

A user using the HOL assembly 20 can write new subroutines or selectsubroutines for push to squad leader robot SQL. The HOL computingcapability can comprise hardware, storage devices and programming tosupport squad task completion; and appropriate inputs, outputs, &displays permit user interaction.

Banks of processors can preprocess collected information to determinepredictive mapping of outcomes. By performing discrete run-aheads ofpossible subroutines, it is possible to review whether the subroutinesare any good. It is also possible to check whether the task area thatthe squad is in is correctly represented in the HOL assembly 20. It isalso possible to discover or adjust optimization points that areoutcome-determinative.

The outcomes can be reviewed by the user and desired outcomes can beselected for implementation by the squad network. Implementation canoccur by one or more of adjusting tasks, adjusting priorities, adjustingarguments, or adjusting attributes of the tasks. The HOL user can writenew subroutines. Or, the subroutines can auto-adjust based on theadjusted tasks, priorities, arguments, or attributes; theauto-adjustment can occur, for example, by export of supporting code insupport of the adjustments. This strategy supports the task completion,as a task with given priorities has linked processes and attributes. Asdata collects to adjust the attributes, the processes adjust to completethe task.

Instead of each squad member running pre-processing, either the squadleader robot SQL or the HOL assembly 20 or a subset of high processingcapacity squad members (which can include only a single squad member) isallocated the processing task. This permits flexibility to allocateburden to the cloud or to the squad members. While a computationallystrong squad could handle the allocation, the strategy avoids havingeach squad member running predictive mapping to determine its next step.Thus, low computational performers can perform complex tasks bysequential feed of optimized subroutines.

The predictive mapping assists with calibration and allocation of teammembers, as it permits processing to determine which significantinteractions give the best task results. Predictive mapping permits theHOL assembly 20 or squad leader robot SQL to determine which pairings ofrobots give the most significant results.

These preceding predictive mapping techniques can be part of step 503for applying predictive mapping to task area data. In support of thedesired outcome, the task area data can be pre-processed also to weightphysical characteristics and electronic characteristics in step 507.Referring back to the above examples, when making toast, toasterfunction 2031 can have a high weight. But a computationally intense taskgives toaster function 2031 zero weight while giving processing speed Xa high weight.

In step 509, the physical characteristics and electronic characteristicsof the squad network in the task area 100 are collected and processed.In step 511, the robots in the squad network are ranked according to theweights assigned in step 507. So, robot B1 is ranked high for itsphysical characteristic 3031 for the commanded task of making toast, buthaving a lower processing capacity, than robots A1 & A2, robot B1 isranked lower for a computationally intense processing task.

In step 513, squad leader robot SQL is selected. In the illustration thebest robot for processing capabilities is selected as squad leader robotSQL. However, an alternative squad leader robot can be selected based onmeeting minimum criteria, leaving the stronger robot available for othercommanded tasks. For example, when making toast, the illustrated squadleader robot SQL can be excluded in favor of robot A2, robot A2 havingadequate processing capabilities to convey bread to the toaster function3031.

In step 515, the subordinate hierarchy is designated. Robots with a highweight for a task can be designated layer A robots while robots oflittle contributive value are designated layer B robots. In the toastexample, toaster could be upgraded to layer A while robot A1 is demotedto layer B. For computationally intense processing, the hierarchy canremain as illustrated. Additionally, a squad leader robot SQL can workwith as many robots as necessary to complete a task. So, a firstsubordinate robot can perform a portion of the commanded task while asecond subordinate robot performs another portion of the task.

As another example of designating a subordinate hierarchy, it ispossible to select a squad leader robot SQL and then allocate some ofthe squad leader functionality to a layer A robot so that a layer Arobot is allocated some of the oversity of a squad leader robot. So, thelead robot can receive a work confirmation signal from a firstsubordinate robot, for example, robot A1, and also from a secondsubordinate robot A2 in the task area 100. The lead robot transmits thetask command to the second subordinate robot A2. The lead robot receivesa task confirmation signal from the second subordinate robot A2, and thetask confirmation signal from the second subordinate robot A2 isprocessed to confirm whether the subordinate robot can collaborate withthe lead robot and the first subordinate robot A1 to do the first task.Then, it is possible to compare the processed received first data andthe processed received second data from the first subordinate robot A1to the received task confirmation signal from the second subordinaterobot A2. It is then possible to determine relative task completioncapabilities between the first subordinate robot A1 and the secondsubordinate robot A2. Then, it is possible to subdivide the task commandin to first task commands and second task commands to allocate roboticcollaboration based on the determined relative task completioncapabilities.

With the hierarchy in place, it is possible to advance the firstsubordinate robot A1 to lead robot status for purposes of issuingsubordinate task commands after determining the relative task completioncapabilities. Then, the second subordinate robot A2 can be assigned toreceive and execute subordinate task commands issued by the firstsubordinate robot A1.

In step 517, it is possible to deselect unusable robots and exclude themfrom the squad members altogether. For the example of moving on a grade,robot B1, having no capacity to maneuver, can be excluded fromparticipating in the commanded task. Or, following the first subordinaterobot and second subordinate robot example, it is possible to one ofdeactivate the lead robot, demote the lead robot to a lower layer, orassign the lead robot to a new task.

Step 519 can proceed after step 515 to result in optimal robot use, eachsquad member being used at an optimal capacity. By way of the processingcapabilities example, an example for implementing step 519 can comprisesubdividing the first task in to a sequence of sub-tasks. The sequenceof sub-tasks can be optimized to maximize use of lead robot, subordinaterobot and second subordinate robot aggregated processing capabilities.So, parallel processing tasks assigned to a robot with optimalattributes for such, and serial processing tasks assigned to a robotwith optimal attributes for such. But, to avoid impacting otherattributes of the subordinate robots, it is possible to minimize theimpact on aggregated storage device capabilities of the subordinaterobot and second subordinate robot. This helps the subordinate robotsrun faster and maintain high storage device capabilities. So, it ispossible to sequentially transmit the sequence of sub-tasks for parallelor serial processing, so as not to unnecessarily fill the respectivestorage devices of the subordinate robots.

In order to make the tasks feasible to the processing capabilities ofthe squad members, it can be necessary to adjust the task commands instep 521. This can comprise a step of subdividing the first task in to asequence of sub-tasks, the sequence of sub-tasks optimized to maximizeuse of subordinate robot electronic characteristics. Transmitting thetask command to such a subordinate robot can comprise sequentiallytransmitting the sequence of sub-tasks.

Or, step 521 can comprise subdividing the first task in to a sequence ofsub-tasks, the sequence of sub-tasks optimized to maximize use ofsubordinate robot processing capabilities, transmit signal profile, andreceive signal profile, while minimizing impact on subordinate robotstorage device capabilities. Transmitting the task command can againcomprise sequentially transmitting the sequence of sub-tasks.

Or, step 521 can comprise determining that the subordinate robot doesnot comprise sufficient storage device capabilities to store algorithmsfor completing the first task, and so adjusting task commands comprisesdownloading task completion algorithms from a remote library source tothe lead robot, and streaming the task completion algorithms from thelead robot to the subordinate robot.

In a complex system, it is possible to implement multiple regressions tostudy combinations of robots to select the best combination of robots.The complexity can be allocated to processors in the cloud or to theHOL. The simulations can be stored in the library or elsewhere in thecloud and can be accessed before task allocation, or dynamically duringsubroutine allocation, to determine next steps for the squad.

The squad leader robot SQL—to cloud—to HOL assembly 20 architecturepermits the real-time building of decision engine software and supportsthe cohesive use of:

Virtual mapping of robot locations, actions, and situations;

CAVP process validation (Calibration and Validation Process for ComplexAdaptive Simulations Systems);

Virtual mapping from sensors to systems;

Augmented reality of multiple real and virtual systems interacting withreal and virtual obstacles as a comprehensive team;

Discrete what-if analysis tools;

Cognitive decision making process for rapid decisions that areforensically traceable;

Off-platform cloud processing banks for decision support;

Communication envelopes that self-heal and self-organize to build LANnetworks;

Constant run ahead decision making to determine best formations and teamcompositions; and

Viewable data collection with selective data feed.

Squad adjustments can comprise, for example:

Robots capable of automatically detecting each other and adaptingworkflow to account for new members, situations or human leadership;

Team machine behaviors that allow team lift, team formation changes, andteam push; and

Disciplined, responsive, autonomous team-task capable networks ofvarious types of robots.

Customary programming languages, such as C+ within a Visual StudioIntegrated Development Environment, can be used to implement thenetwork. With the use of the universal decoder device, squad leaderrobot SQL and the HOL assembly 20 an “learn” the robot operatinglanguage and thus interact with any host of microcontrollers, such asArduino, Raspberry Pi, etc. The HOL assembly 20 or squad leader robotSQL can be equipped with multiple transceiver types, or multiple squadleader robots can be appointed to aggregate the necessary connectivityto the HOL assembly 20 so that a variety of network connections caninterface with a single squad network. For example, network connectivitycan be to one or more of wireless LANs, XBee 1 or 2 wirelesscommunications devices, 2.4 gHz 802.11G communications.

One aspect of robot communication within the squad network requirespermission from a robot to participate in the squad network. Forexample, even though an airplane is capable of communicating with thesquad due to its network connectivity, the squad leader robot SQL canrefuse communication with the airplane. Alternatively, even if pinged bysquad leader robot SQL to participate in the squad network, the airplanewould have to grant permission to participate, as by human interactionor as by pre-coding in the airplane's system software.

Thus, in the absence of a universal decoder device in a foreign robot,it is possible to implement a calibration process where a squad leaderrobot or a tasked squad member sends a signal to a foreign robot, withscanning of possible signals to find the correct transmission signal.The squad leader robot SQL or tasked squad member can observe results,such as responses by the foreign robot and transmit the observation tothe cloud for further processing. A subroutine can be built to downloadto squad leader root SQL to control the foreign robot to complete thetask.

Preferably, a squad network and its available and actual participantswould have its own communication protocol with interaction on a sharedcommunication line. Once connected to a squad network, a robot wouldtransmit location data for receipt and processing by squad leader robotSQL or HOL assembly 20, and a subroutine would be pushed to the robotfor movement control. Subroutine pushes to a squad member can besynchronized or threaded, as necessary.

Other implementations will be apparent to those skilled in the art fromconsideration of the specification and practice of the examplesdisclosed herein.

What is claimed is:
 1. A method of robotic collaboration, comprising:assigning a task in a task area; applying a calibration process to agroup of robots to rank the group of robots by one or both ofcomputational capability or physical capability required to complete theassigned task; designating one or more robot of the group of robots asleader robot; designating one or more robot of the group of robots assubordinate robot; collecting task area data at the one or more leaderrobot; applying, by the one or more leader robot, a predictive mappingto the collected task area data to create a sequence of subroutinesneeded to complete the assigned task, the predictive mapping comprisinga run-ahead processing of the sequence of subroutines to determineoutcome-determinative optimization points of the task; and composing, bythe one or more leader robot, a subroutine allocation to direct the oneor more subordinate robot and the one or more leader robot to completethe assigned task; wherein the subroutine allocation results inheterogenous subroutines being allocated such that the one or moreleader robot completes different aspects of the assigned task thanaspects of the assigned task completed by the one or more subordinaterobot.
 2. The method of claim 1, wherein the group of robots areheterogenous, and wherein the one or more leader robot comprises atleast the computational capability or physical capability to completethe assigned task.
 3. The method of claim 1, wherein the group of robotsare homogenous, and wherein more than one leader robots are aggregateduntil the leader robots comprise at least the computational capabilityor physical capability to complete the task.
 4. The method of claim 1,wherein more than one leader robots are aggregated until the leaderrobots comprise at least the computational capability or physicalcapability to complete the task.
 5. The method of claim 1, wherein atleast some robots of the group of robots are homogenous in computationalcapability or physical capability, yet less than all of the homogenousrobots are designated as a leader robot.
 6. The method of claim 1,wherein the one or more subordinate robot collects updated task areadata and observational data of performance of the group of robots whilecompleting the assigned task and forwards the updated task area data andobservational data of performance of the group of robots to the one ormore leader robot, and wherein the one or more leader robot processesthe forwarded updated task area data and observational data ofperformance of the group of robots and applies an updated subroutineallocation.
 7. The method of claim 6, wherein applying a subroutineallocation to complete the assigned task comprises the one or moreleader robot holding-back subroutines until the updated task area datais collected and processed.
 8. The method of claim 1, wherein the one ormore subordinate robot collects updated task area data while completingthe assigned task, processes the updated task area data, and modifiesthe allocated subroutine responsive to the updated task area data tocomplete the aspect of the assigned task.
 9. The method of claim 1,comprising implementing a cross-communication routine comprisingmonitoring, by the one or more leader robots, the one or moresubordinate robots for report-back data, and reallocating the subroutineallocation in the absence of report-back data from one or moresubordinate robots.
 10. The method of claim 1, comprising applying aprocessing capabilities subroutine to determine the computationalcapabilities of the one or more subordinate robot, and wherein applyinga subroutine allocation to complete the assigned task comprises the oneor more leader robot sequentially feeding subroutines to the one or moresubordinate robot, the sequentially fed subroutines optimized to thedetermined computational capabilities of the one or more subordinaterobot.
 11. The method of claim 10, wherein more than one subordinaterobots are heterogenous as to computational capabilities such that thesize of the respective subroutines sequentially fed to the respectivemore than one subordinate robots varies.
 12. The method of claim 1,comprising applying a processing capabilities subroutine to determinethe computational capabilities of the one or more subordinate robot, andwherein applying a subroutine allocation to complete the assigned taskcomprises the one or more leader robot subdividing the first task into asequence of subtasks and sequentially feeding the subtasks to the one ormore subordinate robot.
 13. The method of claim 1, wherein applying acalibration process to complete the task comprises selecting acomputational capability or physical capability most needed to completethe task; and ranking the group of robots into a hierarchy of capacityto satisfy the selected most needed computational capability or physicalcapability.
 14. The method of claim 13, wherein the hierarchy ofcapacity dictates the designation of the one or more leader robot andthe designation of the one or more subordinate robot such that the oneor more robots comprising the most needed computational capability orphysical capability is designated as leader robot while the one or morerobots comprising less needed computational capability or physicalcapability are designated as subordinate robot.
 15. The method of claim14, wherein: the one or more subordinate robot collects updated taskarea data while completing the assigned task and forwards the updatedtask area data to the one or more leader robot; the one or more leaderrobot: processes the forwarded updated task area data; applies acalibration process to select an updated computational capability orphysical capability most needed to complete the task in light of theupdated task area data; and applies an updated subroutine allocationresponsive to the forwarded updated task area data; and when the updatedtask area data indicates a change in the computational capability orphysical capability most needed to complete the task in light of theupdated task area data, the updated subroutine allocation comprises thedemotion of the one or more leader robot to subordinate robot and thepromotion of one or more subordinate robot to leader robot.
 16. A methodof robotic collaboration, comprising: assigning a task in a task area;applying a calibration process to a group of robots to rank the group ofrobots by one or both of computational capability or physical capabilityrequired to complete the assigned task, wherein applying a calibrationprocess to complete the task comprises: selecting a computationalcapability or physical capability most needed to complete the task; andranking the group of robots into a hierarchy of capacity to satisfy theselected most needed computational capability or physical capability;applying the ranking to designate a robot of the group of robots asleader robot; applying the ranking to designate a robot of the group ofrobots as subordinate robot; deploying the leader robot and subordinaterobot in the task area; collecting task area data in the task area, theleader robot collecting a subset of task area data and the subordinatecollecting a second subset of task area data and forwarding the secondsubset of task area data to the leader robot; processing, by the leaderrobot, the collected task area data to create a sequence of subroutinesneeded to complete the assigned task; and composing and applying, by theleader robot, a subroutine allocation to direct the subordinate robot tocomplete the assigned task.
 17. The method of claim 16, wherein thesubroutine allocation results in heterogenous subroutines beingallocated such that the leader robot completes different aspects of theassigned task than aspects of the assigned task completed by thesubordinate robot.
 18. The method of claim 16, wherein the hierarchy ofcapacity dictates the designation of the leader robot and thedesignation of the subordinate robot such that the robot of the group ofrobots comprising the most needed computational capability or physicalcapability is designated as leader robot while the robot of the group ofrobots comprising less needed computational capability or physicalcapability is designated as subordinate robot.
 19. The method of claim18, wherein: the subordinate robot collects updated task area data whilecompleting the assigned task and forwards the updated task area data tothe leader robot; the leader robot: processes the forwarded updated taskarea data; applies a calibration process to select an updatedcomputational capability or physical capability most needed to completethe task in light of the updated task area data; and applies an updatedsubroutine allocation responsive to the forwarded updated task areadata; and when the updated task area data indicates a change in thecomputational capability or physical capability most needed to completethe task in light of the updated task area data, the updated subroutineallocation comprises the demotion of the leader robot to subordinaterobot and the promotion of subordinate robot to leader robot.
 20. Themethod of claim 16, wherein applying a subroutine allocation to completethe assigned task comprises the leader robot subdividing the first taskinto a sequence of subtasks, selecting a set of subtasks for hold-back,and sequentially feeding the subtasks to the subordinate robot.